package com.biglead.demo.rabbit;

import java.text.SimpleDateFormat;
import java.util.Date;

import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component
@Slf4j
public class RabbitProducer {

    @Autowired
    private AmqpTemplate rabbitTemplate;

    public void sendDemoQueue() {
        Date date = new Date();
        String dateString = new SimpleDateFormat("YYYY-mm-DD hh:MM:ss").format(date);
        log.info("[testQueue1] 发送基本消息: " + dateString);
        // 第一个参数为刚刚定义的队列名称
        this.rabbitTemplate.convertAndSend("testQueue1", dateString);
    }

    public void sendTopicAB() {
        Date date = new Date();
        String dateString = new SimpleDateFormat("YYYY-mm-DD hh:MM:ss").format(date);
        dateString = "测试 Topic 消息 " + dateString;
        System.out.println(dateString);
        // 注意 第一个参数是我们交换机的名称 ，
        // 第二个参数是routerKey topic.msg，
        // 第三个是你要发送的消息
        // 这条信息将会被 topic.a  topic.b接收
        this.rabbitTemplate.convertAndSend("testTopicExchange", "topic.msg", dateString);
    }
    public void sendTopicTopicB() {
        Date date = new Date();
        String dateString = new SimpleDateFormat("YYYY-mm-DD hh:MM:ss").format(date);
        dateString = "测试 Topic 消息 :" + dateString;
        System.out.println(dateString);
        // 注意 第一个参数是我们交换机的名称
        // 第二个参数是routerKey ，
        // 第三个是你要发送的消息
        // 这条信息将会被topic.b接收
        this.rabbitTemplate.convertAndSend("testTopicExchange", "topic.good.msg", dateString);
    }

}